package com.songlanyun.modules.freebaggive.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.songlanyun.common.drive.IBaseService;
import com.songlanyun.common.utils.PageUtils;
import com.songlanyun.modules.disabilityauth.entity.DisabilityAuthEntity;
import com.songlanyun.modules.freebaggive.entity.FreeBagGiveEntity;

import java.util.List;
import java.util.Map;

/**
 * 福利发放和使用的流水
 *
 * @author lubo
 * @email sunlightcs@gmail.com
 * @date 2022-08-04 17:08:04
 */
public interface FreeBagGiveService extends IBaseService<Long,FreeBagGiveEntity> {

    @Override
    PageUtils queryPage(Map<String, Object> params);

    /**
     * 首次发放
     * @param userId
     */
    void firstGive(Long userId);


    /**
     * 每月发放
     * @param disabilityAuthEntity
     */
    void monthGive(DisabilityAuthEntity disabilityAuthEntity);

    /**
     * 获取免费审领次数
     * @param userId
     * @return
     */
    Integer getFreeLimit(Long userId);


    /**
     * 获取用户最后一条免费审领数据
     * @param userId
     * @return
     */
    FreeBagGiveEntity loadLast(Long userId);

    /**
     * 使用一次免费申领
     * @param userId
     */
    void  useFree(Long userId);




    void batchProcess(List<?> data);
}

